<?php

require_once 'connection.php';

class ORMPaciente extends Connection {

    //put your code here
    private $conexion;
	
    /////// HENDERSON//////////
    private $Identidad;
    private $nombre;
    private $fecha;
    private $direccion;
    private $telefono;
    private $sexo;
    private $idPersona;
    
    /////// HENDERSON//////////

    function ORMPaciente() {
        $this->conexion = new Connection();
        $this->conexion->connect();
    }

    function SetIdPaciente($IdPaciente) {
        $this->idPaciente = $IdPaciente;
    }

    function ObtenerEdad() {
        $sql_consulta = "SELECT DATEDIFF(NOW(),fechaNacimiento)/365 AS edad FROM Persona WHERE IdPersona=3";
        $conexion_consulta2 = new Connection();
        $qry_consulta = $conexion_consulta2->executeQuery($sql_consulta);
        $reg_consulta = mysql_fetch_assoc($qry_consulta);
        return $reg_consulta['edad'];
    }

    public function buscaPaciente($expediente, $nomb, $identidad) {
        if (!empty($expediente)) {
            $resultado = $this->conexion->executeQuery("select * from persona where idPersona='$expediente'");
        } else {
            $resultado = $this->conexion->executeQuery("select * from persona where nombre='$nomb' or identidad='$identidad'");
        }

        return $resultado;
    }

    public function obtieneVacunasPaciente($expediente) {
        $resultado = $this->conexion->executeQuery("select * from vacunacion inner join vacuna on vacunacion.idVacuna=vacuna.idVacuna where vacunacion.expediente_idExpediente='$expediente'");

        return $resultado;
    }

    public function guardarVacunaPaciente($expediente, $fecha, $idVacuna, $dosis, $edad, $observaciones) {
        $this->conexion->executeQuery("insert into vacunacion(expediente_idExpediente, idVacuna, dosis, mesaplicacion, observaciones, fecha) values('$expediente', '$idVacuna', '$dosis', '$edad', '$observaciones', '$fecha')");
    }

    public function modificarVacunaPaciente($expediente, $fecha, $idVacuna, $dosis, $edad, $observaciones, $fechaAct, $idVacunaAct, $dosisAct, $edadAct, $observacionesAct) {
        $this->conexion->executeQuery("update vacunacion set expediente_idExpediente='$expediente', idVacuna='$idVacuna', dosis='$dosis', mesaplicacion='$edad', observaciones='$observaciones', fecha='$fecha' where expediente_idExpediente='$expediente' and idVacuna='$idVacunaAct' and dosis='$dosisAct' and mesaplicacion='$edadAct' and observaciones='$observacionesAct' and fecha='$fechaAct'");
    }

    public function eliminaVacunaPaciente($expediente, $fecha, $idVacuna, $dosis, $edad, $observaciones){
        $this->conexion->executeQuery("delete from vacunacion where expediente_idExpediente='$expediente' and idVacuna='$idVacuna' and dosis='$dosis' and mesaplicacion='$edad' and observaciones='$observaciones' and fecha='$fecha'");
    }

	
	
	/////// HENDERSON//////////

	function getdireccion()
	{
		return $this->direccion;
	}

	function getfecha()
	{
		return $this->fecha;
	}
	/**
	 * HENDERSON
	 */
	function getIdentidad()
	{
		return $this->Identidad;
	}

	function getnombre()
	{
		return $this->nombre;
	}

	function getsexo()
	{
		return $this->sexo;
	}

	function gettelefono()
	{
		return $this->telefono;
	}
    
    function getidPersona()
	{
		return $this->idPersona;
	}

	/**
	 * 
	 * @param newVal
	 */
	function setdireccion($newVal)
	{
		$this->direccion = $newVal;
	}

	/**
	 * 
	 * @param newVal
	 */
	function setfecha($newVal)
	{
		$this->fecha = $newVal;
	}

	/**
	 * HENDERSON
	 * 
	 * @param newVal    newVal
	 */
	function setIdentidad($newVal)
	{
		$this->Identidad = $newVal;
	}

	/**
	 * 
	 * @param newVal
	 */
	function setnombre($newVal)
	{
		$this->nombre = $newVal;
	}

	/**
	 * 
	 * @param newVal
	 */
	function setsexo($newVal)
	{
		$this->sexo = $newVal;
	}

	/**
	 * 
	 * @param newVal
	 */
	function settelefono($newVal)
	{
		$this->telefono = $newVal;
	}
    
    /**
	 * 
	 * @param newVal
	 */
	function setidPersona($newVal)
	{
		$this->idPersona = $newVal;
	}
	
	function AgregarPaciente() {
        $sql_verificar_paciente = "SELECT * FROM mostrarPacientes WHERE identidad =" . $this->Identidad  ;
        $qry_verificar_paciente = $this->conexion->executeQuery($sql_verificar_paciente);
        $idPersona = "";
        if (mysql_num_rows($qry_verificar_paciente) > 0) {
            echo "Paciente  ya registrado"; //Paciente  ya registrado
        } else {
            $sql_buscar_persona = "SELECT * FROM Persona WHERE identidad='" . $this->Identidad . "'";
            $qry_persona = $this->conexion->executeQuery($sql_buscar_persona);
            if (mysql_num_rows($qry_persona) > 0) {//esta registrado la persona
                $reg_persona = mysql_fetch_assoc($qry_persona);
                $idPersona = $reg_persona['idPersona'];
				//echo $qry_persona . "<br />";
            } else {//no esta registrada la persona
                $sql_add_persona = "INSERT INTO Persona (nombre,fechaNacimiento,identidad,telefono,direccion,sexo)
                    VALUES ('" . $this->nombre . "','" . $this->fecha . "','" . $this->Identidad . "','" . $this->telefono . "',
                        '" . $this->direccion . "','" . $this->sexo . "')";
                $this->conexion->executeQuery($sql_add_persona);
				
				$qry_persona = $this->conexion->executeQuery($sql_buscar_persona);
				$reg_persona = mysql_fetch_assoc($qry_persona);
                $idPersona = $reg_persona['idPersona'];
				/*
                $sql_id_persona = "SELECT * FROM Persona ORDER BY idPersona DESC limit 1";
                $qry_id_persona = $this->conexion->executeQuery($sql_id_persona);
                $reg_id_persona = mysql_fetch_assoc($qry_id_persona);
                $idPersona = $reg_id_persona['idPersona'];
				*/
            }
			
			$this->conexion->close();
			$this->conexion->connect();
            $sql_add_paciente = "call insertarPaciente  ( $idPersona ,'" . date("Y-m-d") . "')";
            $qsalida = $this->conexion->executeQuery($sql_add_paciente);
			//nada
			echo $sql_add_paciente . "<br />";
			$reg = mysql_fetch_assoc($qsalida);
			$salida = $reg['salida'];
			echo "$salida <br />";
            echo "Paciente agregado correctamente"; //agregado correctamente
			
        }
    }
    
    function EliminarPaciente() {
        $sql_dele_paciente = "call borrarPaciente($this->idPersona)";
        $this->conexion->executeQuery($sql_dele_paciente);
        
        echo $sql_dele_usr;
    }

    function ActualizarPaciente() {
        $sql_verificar_paciente = "SELECT * FROM mostrarPacientes WHERE idPersona=" . $this->idPersona;
        //echo $sql_verificar_paciente;
        $qry_verificar_paciente = $this->conexion->executeQuery($sql_verificar_paciente);

        if (mysql_num_rows($qry_verificar_paciente) <> 1 ) {
            echo "El Paciente no se ha registrado"; //paciente ya esta registrado";
        } else {
            
            //actualizar en la tabla persona
            
//CREATE PROCEDURE actulizarPersona( IN idPersona2 INTEGER, IN nombre2 VARCHAR (45), IN nacimiento2 DATE, IN identidad2 VARCHAR(13), IN telefono2 VARCHAR(45), IN direccion2 VARCHAR(100), IN sexo2 VARCHAR(1) )

            if ($this->fecha != "") {
                $sql_upd_persona = "call actualizarPersona(" . $this->idPersona . ", '" . $this->nombre . "', '" . $this->fecha . "', '" . $this->Identidad . "', '" . $this->telefono . "', '" . $this->direccion . "', '" . $this->sexo . "')";
            }else{    
                $sql_upd_persona = "call actualizarPersonaSinFecha(" . $this->idPersona . ", '" . $this->nombre . "', '" . $this->Identidad . "', '" . $this->telefono . "', '" . $this->direccion . "', '" . $this->sexo . "')";
            }
            //echo $sql_upd_persona;
            $this->conexion->executeQuery($sql_upd_persona);
            echo "Paciente actualizado correctamente"; //agregado correctamente
        }
    }
	

	
	
	/////// HENDERSON//////////
}

?>
